home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d17 / prindir8.arc / PRINDIR.DOC < prev    next >
Text File  |  1991-11-07  |  35KB  |  793 lines

  1.  
  2.  
  3.  
  4.  
  5.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  6.  
  7.  
  8.                                     TABLE OF CONTENTS
  9.  
  10.           Introduction ............................................... page 2
  11.           Shareware Notice ........................................... page 2
  12.           Disclaimer ................................................. page 3
  13.  
  14.           I.   PRINDIR PROGRAM USE AND OPTIONS
  15.  
  16.                Installing PRINDIR .................................... page 3
  17.                Command Line Parameters................................ page 3
  18.                Order of Installation ................................. page 4
  19.                Releasing PRINDIR ..................................... page 5
  20.                PRINDIR Popup Parameter Menu .......................... page 6
  21.                Status Box ............................................ page 6
  22.                Redirected Device ..................................... page 6
  23.                Device Destination .................................... page 6
  24.                Redirection Files ..................................... page 6
  25.                Invisible Mode ........................................ page 7
  26.                The PRINDIR Byte Count Indicator ...................... page 7
  27.                Important Notes ....................................... page 8
  28.  
  29.           II.  PRINMOD PROGRAM USE AND OPTIONS
  30.  
  31.                Program Overview ...................................... page 8
  32.                Command Line Parameters ............................... page 8
  33.                Notes For Programmers ................................. page 9
  34.  
  35.           III. PRINKEY PROGRAM
  36.  
  37.                Program Usage ......................................... page 10
  38.  
  39.           IV.  PRINCOL PROGRAM
  40.  
  41.                Program Usage ......................................... page 11
  42.  
  43.           VI.  TECHNICAL SUPPORT
  44.  
  45.                Final Notes and Where to Get HELP! .................... page 11
  46.                Known Conflicts ....................................... page 11
  47.  
  48.           PRINDIR Registration Form .................................. page 12
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.           INTRODUCTION:
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  72.  
  73.  
  74.  
  75.                Welcome to Version 8.00 of PRINDIR, the BEST printer redirection
  76.           program available!  PRINDIR is a TSR program that will allow you to
  77.           redirect the output of any standard COM or LPT port to any other COM
  78.           or LPT port, as well as to disk files and to the display.  In
  79.           addition, PRINDIR allows you to specify the full path and file name
  80.           for disk file redirection, thus it is possible to redirect to any file
  81.           or logical device.  The main program offers an easy to use Popup
  82.           Parameter Menu from which the user can quickly and easily set program
  83.           options.  PRINDIR can make use of expanded and extended memory on
  84.           systems so equipped, making its conventional memory footprint even
  85.           smaller.  PRINDIR also includes several small support utilities to
  86.           help you customize PRINDIR to meet your needs.  PRINDIR is fast,
  87.           intuitive, easy to use, and can be utilized to solve many different
  88.           types of problems.  Only your imagination will limit what you can do
  89.           with PRINDIR.
  90.  
  91.                PRINDIR is a Shareware program written by Michael A. Hotz of J.M.
  92.           Allen Creations, and is user supported through Shareware registration.
  93.           Technical support is provided via phone, email, U.S. mail, or any
  94.           other means possible.  Registered users are rewarded with very cheap
  95.           upgrades to any future version which is released after the version
  96.           they register.  Users who register an older version after a newer
  97.           version has been released with be sent the latest version at no extra
  98.           cost.
  99.  
  100.           SHAREWARE NOTICE:
  101.  
  102.                The PRINDIR system, comprised of PRINDIR, PRINMOD PRINCOL, and
  103.           PRINKEY versions 8.00, this documentation, and any previous or later
  104.           versions of any of the above are all Copyright (c) 1989-1991 J.M.
  105.           Allen Creations.  All Rights Reserved by Michael A. Hotz.  This
  106.           program is NOT public domain, it is released using the Shareware
  107.           concept.  I invite you to use my software on a trial basis.  If after
  108.           30 days, you find that this is an indispensable addition to your
  109.           utility entourage, I ask that you pay for this program by sending a
  110.           $20.00 registration fee to the author by using the registration form
  111.           included on the last page of this manual.  You may also register by
  112.           phone using a valid VISA or MASTERCARD.  Registered users will be
  113.           allowed 25% upgrades on any future Shareware versions of PRINDIR.
  114.           Registration allows you to use PRINDIR on any number of computers at a
  115.           single location.  You are required to register a copy of PRINDIR for
  116.           each location where it will be used on one or more machines.
  117.  
  118.                Registered users are invited to upgrade to the latest version of
  119.           PRINDIR for only $5.00.  Registration assures you of 25 percent
  120.           upgrades for any future shareware versions of the program, unlimited
  121.           technical support, and you will have a clear conscience knowing you
  122.           have not stolen this software, but rather paid a very modest fee for
  123.           the continued legal use of PRINDIR.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.                                          Page - 2
  132.  
  133.  
  134.  
  135.  
  136.  
  137.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  138.  
  139.  
  140.                This program may be freely distributed for others evaluation as
  141.           long as no fee is charged, with the exception of modest disk, shipping
  142.           and handling charges.  Any person who uses this product agrees to the
  143.           terms of the Shareware, Copyright, and Disclaimer notices contained
  144.           herein.  If this system is distributed, only the original archive
  145.           distributed by J.M. Allen Creations should be used, and it should not
  146.           be modified in ANY WAY!  This will allow users who fear they may have
  147.           obtained a patched, or otherwise modified version of the program to
  148.           verify the integrity of the program by calling J.M. Allen Creations
  149.           with the archive checksum information.
  150.  
  151.                You MAY NOT disassemble, reverse engineer, hack, change, modify,
  152.           alter, mutate, refashion, vary, or catalyze any of these programs or
  153.           documentation in any way, manner shape or form.
  154.  
  155.           DISCLAIMER:
  156.  
  157.           Michael A. Hotz, nor J.M. Allen Creations, nor any person or entity
  158.           affiliated with either, will assume any responsibility for any
  159.           situation which occurs as a result, be it direct, or indirect, of the
  160.           use of any of these programs.  THE USER ASSUMES ALL RISK WHICH MAY BE
  161.           ASSOCIATED WITH THE USE OF THESE PROGRAMS.  There are no warrantees
  162.           whatsoever, expressed or implied, as to the usefulness or
  163.           effectiveness of this system for any particular purpose.  This
  164.           software is sold as is, and is not guaranteed to work on any
  165.           particular machine, or under any particular hardware or software
  166.           configuration.  All of the programs have been tested on my hardware
  167.           under numerous configurations to perform as described in this
  168.           documentation.  Use of this software in any way constitutes IMMEDIATE
  169.           acceptance of these terms by the user.
  170.  
  171.           INSTALLING PRINDIR:
  172.  
  173.                PRINDIR should be installed on a system running version 2.0 of
  174.           DOS or greater.  It should be installed at the command line, or in a
  175.           batch file, but should not be installed while you are shelled to DOS
  176.           from inside another program.  The program requires one of three
  177.           command line switches to be installed, or one to be released.  The
  178.           installation switches control what type of memory PRINDIR will use for
  179.           a buffer when redirecting to disk files.
  180.  
  181.           COMMAND LINE PARAMETERS:
  182.  
  183.           prindir /c
  184.  
  185.                Installing PRINDIR with the /c parameter will cause PRINDIR to
  186.           allocate 32k of CONVENTIONAL memory for redirection to disk files.
  187.  
  188.           prindir /x
  189.  
  190.                Installing PRINDIR with the /x parameter will cause PRINDIR to
  191.           allocate 32k of EXTENDED memory for redirection to disk files.  You
  192.           must have an XMM (Extended Memory Manager) such as HIMEM.SYS
  193.  
  194.  
  195.  
  196.  
  197.                                          Page - 3
  198.  
  199.  
  200.  
  201.  
  202.  
  203.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  204.  
  205.  
  206.           installed, and sufficient extended memory in order to use extended
  207.           memory with PRINDIR.
  208.  
  209.           prindir /a
  210.  
  211.                Installing PRINDIR with the /a parameter will cause PRINDIR to
  212.           allocate 32k of EXPANDED memory for redirection to disk files.  You
  213.           must have an EMM (Expanded Memory Manager) and appropriate hardware
  214.           installed, and sufficient expanded memory available in order to use
  215.           expanded memory with PRINDIR.
  216.  
  217.           ORDER OF INSTALLATION FOR TSR PROGRAMS:
  218.  
  219.                The order of installation of TSR programs has been a subject of
  220.           some confusion in the industry.  This can be especially confusing when
  221.           two programs are installed for the same device to do different things.
  222.           While I certainly can't speak for all TSR programs, the majority of
  223.           properly written TSR programs will follow these basic guidelines.
  224.  
  225.                The easiest way to remember is to know that the last TSR program
  226.           installed will generally take control of the system before any others
  227.           installed before it.  This is because TSR programs function based on
  228.           their ability to intercept interrupts.  The last program to intercept
  229.           an interrupt is the first to receive control when that interrupt
  230.           occurs.  It is then the responsibility of that program to be sure any
  231.           other programs installed before it has an opportunity to receive that
  232.           same interrupt.  Interrupts are simply a way for a device to get the
  233.           attention of the system when they need it's services.  This way, the
  234.           system doesn't waste time asking or polling each device to see if it
  235.           needs to be serviced.  Under this scenario, an interrupt handler does
  236.           its processing, chaining to the next handler as required.
  237.  
  238.                Suppose you have a print spooler installed in your system, and
  239.           you want to be able to use PRINDIR without it interfering with your
  240.           spooler.  The procedure is simple.  Install PRINDIR last.  If PRINDIR
  241.           is installed last, it is first to receive control every time a
  242.           character is printed.  PRINDIR then evaluates it's current setup.  If
  243.           you are redirecting to a disk file, PRINDIR puts the byte in it's
  244.           internal buffer, and the spooler never knows about the byte.  If
  245.           PRINDIR is in invisible mode, PRINDIR will pass the data on untouched
  246.           to the next program, in this case, the print spooler, which then does
  247.           with the data what it is supposed to, and so on.
  248.  
  249.                In another situation, you may have a program installed to change
  250.           all printed data to upper case.  If PRINDIR is installed after this
  251.           program, and is set for invisible mode, printed data will be all
  252.           uppercase because PRINDIR passes the call untouched to the uppercase
  253.           program.  If PRINDIR is redirecting to disk file, the data redirected
  254.           to disk WILL NOT be uppercase because PRINDIR deals with the data
  255.           before the uppercase program gets a chance.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.                                          Page - 4
  264.  
  265.  
  266.  
  267.  
  268.  
  269.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  270.  
  271.  
  272.                While neither of the above scenarios are wrong, they do
  273.           demonstrate that the order of installation can be a key factor in
  274.           getting different programs to work together to ultimately produce the
  275.           results you want.  This logic may seem simple when PRINDIR is
  276.           redirecting to a file or the screen, but you are probably wondering
  277.           what happens when PRINDIR is redirecting to another LPT or COM port.
  278.           The answer becomes less clear, but a basic rule always applies.  In
  279.           all modes except invisible mode, the original call to the redirected
  280.           device is thrown away by PRINDIR, and the data is then directed to the
  281.           proper device by a new call.  PRINDIR does this automatically, and
  282.           none of the other devices or programs know what is going on.
  283.  
  284.                Since I said that was the rule, then we must have an exception,
  285.           which is this.  Setting the device destination the same as the
  286.           redirected device is functionally equivalent to invisible mode.
  287.  
  288.                Now for a quick quiz to test your understanding.  PRINDIR is
  289.           installed and is redirecting LPT1 to LPT3.  PRINDIR was installed
  290.           BEFORE cswitch, a fictional program which toggles upper case to lower
  291.           case and lower to upper on LPT1.  Suppose you are running a program
  292.           which is printing on LPT1.  Where would the data be printed, and what
  293.           will it look like?
  294.  
  295.                If you said the data will be printed on LPT3 you are right!  If
  296.           you said the printing will be case toggled you are even more right!
  297.           If you know this is because cswitch case toggled the data and then
  298.           passed it on to PRINDIR which redirected it to LPT3, you are all
  299.           right!  If you were wrong, and don't know why, you may want to read
  300.           this section again.  Remember that in this case, PRINDIR was installed
  301.           first, and cswitch last.  cswitch got control first when data was
  302.           printed, it intercepted and case toggled the data printed to LPT1, and
  303.           then sent it on to LPT1 which PRINDIR was intercepting, and printed it
  304.           on LPT3.
  305.  
  306.                Just for the record, no matter what the destination in this case,
  307.           the output would have been case toggled because cswitch was installed
  308.           last, and deals with the data first.
  309.  
  310.           UNLOADING OR RELEASING PRINDIR:
  311.  
  312.           To unload PRINDIR, run the program from the command line or a batch
  313.           file after it has been installed with the /r switch, and the program
  314.           will be released.  If one of the interrupts PRINDIR takes over while
  315.           it is installed is changed while it is resident, PRINDIR will not be
  316.           able to unload until the affected interrupt is restored.  If PRINDIR
  317.           cannot unload safely, it will display a message to this effect and
  318.           remain resident.  At this point you may want to unload the offending
  319.           program, and attempt to release PRINDIR again.  Any data in the disk
  320.           buffer will be written automatically before the program releases.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.                                          Page - 5
  330.  
  331.  
  332.  
  333.  
  334.  
  335.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  336.  
  337.  
  338.           PRINDIR POPUP PARAMETER MENU:
  339.  
  340.                The popup parameter menu is your interface with the PRINDIR
  341.           program.  From this small popup menu, you can set many different
  342.           parameters, and control just how PRINDIR works.  The following
  343.           paragraphs summarize the different configuration settings and
  344.           information displays.  The default keystroke to pop up PRINDIR
  345.           is ALT + P (Hold the ALT key and press P).
  346.  
  347.           STATUS BOX:
  348.  
  349.                The status box is located near the top of the Popup Parameter
  350.           Menu.  This box contains several lines of information which tell you
  351.           about the current configuration of PRINDIR.
  352.  
  353.           REDIRECTING:
  354.  
  355.                This field indicates which device PRINDIR is currently
  356.           redirecting.  Any output sent to this device will be intercepted by
  357.           PRINDIR, and redirected to the appropriate destination based on the
  358.           DESTINATION field.  PRINDIR defaults to redirect LPT1 when it is
  359.           installed.  You can very easily change this setting using the 1
  360.           through 7 keys on the top of your keyboard or the PRINMOD program
  361.           supplied with PRINDIR.  When you press one of these keys, this field
  362.           in the status box will be updated instantly to reflect your changes.
  363.           This setting will remain in effect until you change it again through
  364.           the popup parameter screen, or the PRINMOD program.
  365.  
  366.           DESTINATION:
  367.  
  368.                This field indicates which device PRINDIR is currently writing
  369.           redirected output to.  Any data written to the intercepted device is
  370.           intercepted by PRINDIR, and written to this destination device.
  371.           PRINDIR defaults to INVIS (invisible) when installed.  This means that
  372.           if PRINDIR is installed for LPT1, anything written to LPT1 will go
  373.           directly to LPT1 without PRINDIR intervention.  You can very easily
  374.           change this setting using the A through I and M keys on your keyboard.
  375.           Each key will change the destination device, and this field in the
  376.           status box will be updated instantly to reflect the current selection.
  377.           This setting will remain in effect until you change it again through
  378.           the popup parameter screen, or the PRINMOD program.
  379.  
  380.           REDIRECTION FILES:
  381.  
  382.                There are two menu choices which control the redirection files
  383.           PRINDIR uses.
  384.  
  385.                The K key will allow you to edit the file path field.
  386.                The L key will allow you to edit the file name field.
  387.  
  388.                The most important concept to grasp about editing these fields is
  389.           that PRINDIR simply adds them together when it attempts to write to a
  390.           file.  The following correct examples should help you:
  391.  
  392.  
  393.  
  394.  
  395.                                          Page - 6
  396.  
  397.  
  398.  
  399.  
  400.  
  401.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  402.  
  403.  
  404.           File Path = C:\
  405.           File Name = PRINDIR.DAT
  406.           Full File Path = C:\PRINDIR.DAT
  407.  
  408.           File Path = C:\SYSTEM\SCRNDUMP\
  409.           File Name = TODAY.DAT
  410.           Full File Path = C:\SYSTEM\SCRNDUMP\TODAY.DAT
  411.  
  412.           Now suppose we have these to examples:
  413.  
  414.           File Path = C:\TEST\
  415.           File Name = \JUNK.DAT
  416.           Full File Path = C:\TEST\\JUNK.DAT                (** WRONG! **)
  417.  
  418.           File Path = C:\STUFF
  419.           File Name = DIRDUMP.DAT
  420.           Full File Path = C:\STUFFDIRDUMP.DAT              (** WRONG! **)
  421.  
  422.           In the first wrong example, we have a backslash at the end of the path
  423.           as well as at the beginning of the file, creating a full path name
  424.           with a double backslash in the middle.  This won't produce the desired
  425.           results.
  426.  
  427.           In the second example, we have no backslash separating the file path
  428.           and the file name, so again, we don't get the desired results.
  429.  
  430.           Just remember that PRINDIR simply appends the file name to the path to
  431.           create the full file name.
  432.  
  433.           You can feel safe that you will not loose data because PRINDIR will
  434.           never write over existing data.  If the destination file you have
  435.           chosen already exists, PRINDIR will simply append any further data to
  436.           the end of the file, leaving the original data untouched.  If the file
  437.           specified does not exist, PRINDIR will automatically create it.
  438.  
  439.           INVISIBLE MODE:
  440.  
  441.                When PRINDIR is in invisible mode, it appears transparent in that
  442.           it does not modify any data in any way.  Invisible mode allows PRINDIR
  443.           to remain in memory without disturbing any printed data, waiting for
  444.           your commands at any time.
  445.  
  446.           PRINDIR BYTE COUNT INDICATOR:
  447.  
  448.                This display is a five digit counter that can be seen in the
  449.           upper right corner of the screen when key L, Toggle Byte Display, is
  450.           set to on or +.  When the key is toggled to off, or -, the display
  451.           will not be seen.  The current status of the byte display is indicated
  452.           by a + (plus sign) or - (minus sign) beside the words 'Toggle Byte
  453.           Display' in the popup parameter menu.  The display shows the number of
  454.           bytes that are in the redirection buffer, and uses the same colors as
  455.           the parameter menu.
  456.  
  457.  
  458.  
  459.  
  460.  
  461.                                          Page - 7
  462.  
  463.  
  464.  
  465.  
  466.  
  467.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  468.  
  469.  
  470.           IMPORTANT NOTES:
  471.  
  472.                Always remember that PRINDIR will only intercept one device at
  473.           any one time.  Output to any other device will be untouched by
  474.           PRINDIR.
  475.  
  476.                PRINDIR does not do any fancy tap dancing with the video display.
  477.           If you pop PRINDIR up on a graphics display, it will pop up, but you
  478.           more than likely won't be able to see it.  You may even get garbage.
  479.           You can still set parameters by pressing the proper keys, but you
  480.           won't be able to see what you are doing.  Since there are so many
  481.           types of display adapters and video modes any more, adding the code
  482.           and logic to deal with graphics displays would waste more memory than
  483.           would be practical at this point in time.
  484.  
  485.                PRINDIR will automatically write any bytes in the disk buffer
  486.           before popup.  This occurs to prevent problems with parts of files
  487.           being printed to parts of other files when doing file name changes.
  488.  
  489.           PRINMOD PROGRAM OVERVIEW:
  490.  
  491.                PRINMOD is a separate program to support changing resident
  492.           PRINDIR parameters from batch files, or at the command line, or even
  493.           from within other programs.  PRINMOD will allow you to do this easily.
  494.           You simply run PRINMOD with the desired parameters.  The parameters
  495.           can be any number from the list below, in any combination.
  496.  
  497.           COMMAND LINE PARAMETERS:
  498.  
  499.                prinmod /inv        - Set PRINDIR to invisible mode
  500.                prinmod /lpt?       - Set destination to printer (? = 1-3)
  501.                prinmod /com?       - Set destination to com port (? = 1-4)
  502.                prinmod /scr        - Set destination to the screen
  503.                prinmod /fil        - Set destination to a disk file
  504.                prinmod /path=...   - Set the file path to ... (maximum 41 chars)
  505.                prinmod /name=...   - Set the file name to ... (maximum 41 chars)
  506.                prinmod /dump       - Force PRINDIR to flush its buffer ASAP
  507.                prinmod /color???   - Change menu and status color (see PRINCOL)
  508.                prinmod /key???     - Change pop up hot key (see PRINKEY)
  509.                prinmod /dis?       - Toggle byte display (? = 1 or 0)
  510.                prinmod /set?       - Change redirected device (? = 1-7)
  511.  
  512.           The device numbers for /set are as follows:
  513.  
  514.           1 = LPT1  2 = LPT2  3 = LPT3
  515.           4 = COM1  5 = COM2  6 = COM3  7 = COM4
  516.  
  517.                If you give an invalid argument, or PRINDIR is not installed, the
  518.           program will display a message indicating the situation.
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.                                          Page - 8
  528.  
  529.  
  530.  
  531.  
  532.  
  533.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  534.  
  535.  
  536.           NOTES FOR PROGRAMMERS:
  537.  
  538.                You may easily incorporate support for changing resident PRINDIR
  539.           settings in your software through interrupt 7Ah.  You can accomplish
  540.           this through standard software interrupt calls to PRINDIR.  You simply
  541.           put the desired command in the specified registers, and issue the
  542.           software interrupt 7Ah.
  543.  
  544.                AH = 00h  -    Set output to INVISIBLE MODE
  545.                AH = 01h  -    Set output to LPT-1
  546.                AH = 02h  -    Set output to LPT-2
  547.                AH = 03h  -    Set output to LPT-3
  548.                AH = 04h  -    Set output to COM-1
  549.                AH = 05h  -    Set output to COM-2
  550.                AH = 06h  -    Set output to COM-3
  551.                AH = 07h  -    Set Output to COM-4
  552.                AH = 08h  -    Set Output to SCRN
  553.                AH = 09h  -    Set Output to FILE
  554.                AH = 0Ah  -    Change File Path
  555.                               ES:DI = Far pointer to new file path
  556.                               CX = Length of new path
  557.                AH = 0Bh  -    Change File Name
  558.                               ES:DI = Far pointer to new file name
  559.                               CX = Length of new name
  560.                AH = 0Ch  -    Set Redirected Device
  561.                               AL = 1,2,3,4,5,6, or 7 (see above)
  562.                AH = 0Dh  -    Force buffer to dump ASAP
  563.                AH = 0Eh  -    Set Display Color
  564.                               AL = new color (see PRINCOL)
  565.                AH = 0Fh  -    Set Popup Hotkey
  566.                               AL = scancode (see PRINKEY)
  567.                AH = 10h  -    Toggle Byte Display
  568.                               AL = 1 or 0 (on or off)
  569.  
  570.           Before issuing any of these commands, you should insure that version
  571.           8.00 of PRINDIR is installed.  You can do this by first obtaining the
  572.           interrupt vector for interrupt 7Ah using DOS int 21h function 35h, or
  573.           with a compatible function in your high level language such as
  574.           getvect() in C.  If you add two to the offset of the vector, you
  575.           should be able to read the null terminated string "PRINDIR 8.00."  If
  576.           the interrupt vector for PRINDIR points to 3C85:08B0, then you should
  577.           be able to find "PRINDIR 8.00" at 3C85:08B2.  Again, this is a null
  578.           terminated string, so the C string functions will work correctly,
  579.           however, make sure you understand which memory model you are in, and
  580.           what type of pointers you are dealing with, NEAR or FAR!!!!  A pointer
  581.           to this address would obviously be a FAR pointer!  If you are using a
  582.           small memory model in C, you may have to check for "PRINDIR 8.00" the
  583.           hard way:
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.                                          Page - 9
  594.  
  595.  
  596.  
  597.  
  598.  
  599.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  600.  
  601.  
  602.           NOTE: The following example is based on syntax and functions available
  603.           in the Borland line of C compilers, and thus may require modification
  604.           to work with different compilers from other vendors.
  605.  
  606.           #include <stdio.h>
  607.           #include <dos.h>
  608.  
  609.           char      far *prindir;
  610.  
  611.           void main(void)
  612.           {
  613.           prindir = (char far *)getvect(0x7A);
  614.           if ( (prindir[2] == 'P') &&
  615.                (prindir[3] == 'R') &&
  616.                (prindir[4] == 'I') &&
  617.                (prindir[5] == 'N') &&
  618.                (prindir[6] == 'D') &&
  619.                (prindir[7] == 'I') &&
  620.                (prindir[8] == 'R') &&
  621.                (prindir[9] == ' ') &&
  622.                (prindir[10] == '8') &&
  623.                (prindir[11] == '.') &&
  624.                (prindir[12] == '0') &&
  625.                (prindir[13] == '0') ) printf("PRINDIR is installed!\n");
  626.           else printf("PRINDIR is not resident!\n");
  627.           }
  628.  
  629.                If you do not find "PRINDIR 8.00, then PRINDIR is not installed,
  630.           or a version other than 8.00 is resident.  In either case, you should
  631.           not attempt these function calls, as the system may hang.
  632.  
  633.                Finally, once you have determined through the method listed above
  634.           that version 8.00 of PRINDIR is loaded, you may call these functions
  635.           as listed above.  They return 0 in the ax register when successful,
  636.           and any other value indicates some type of error.  If you specify an
  637.           invalid function number in AH (ie: greater than 10h) PRINDIR will
  638.           simply ignore it and return an error code.
  639.  
  640.           PRINKEY PROGRAM:
  641.  
  642.                The PRINKEY program will allow you to press the key you wish to
  643.           use to popup the PRINDIR Popup Parameter Menu.  The program will then
  644.           print the number you must use with the PRINMOD program using the /key
  645.           option.  Remember that this does not change the keystroke permanently,
  646.           only while PRINDIR is installed, or until it is changed again with
  647.           PRINMOD.  While you must use the ALT key in conjunction with the
  648.           hotkey to popup PRINDIR, you should NOT use the ALT key when running
  649.           this program.
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.                                         Page - 10
  660.  
  661.  
  662.  
  663.  
  664.  
  665.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  666.  
  667.  
  668.           PRINCOL PROGRAM:
  669.  
  670.                The PRINCOL program will display all of the possible values for
  671.           the /color option of the PRINMOD program.  Remember that this does not
  672.           change the color permanently, only while PRINDIR is installed, or
  673.           until it is changed again with PRINMOD.  Please note that on some
  674.           displays such as EGA and VGA, other programs may turn off the
  675.           intensity bit of the text mode display.  If you choose a color greater
  676.           than 127, you may get the blinking low intensity color instead of the
  677.           non-blinking high intensity color.  It is generally recommended that
  678.           you stick with the lower 127 colors.  PRINDIR always resets the
  679.           intensity bit when the Popup Parameter Menu is activated.
  680.  
  681.           FINAL NOTES AND WHERE TO GET HELP:
  682.  
  683.                I have put a great deal of work into this system, and I believe
  684.           PRINDIR is one of the best, safest, most versatile, and most reliable
  685.           programs of this nature that is available.  If, however, you are
  686.           experiencing any problems, please don't hesitate to contact me.  I
  687.           answer all customer support questions personally, and would be glad to
  688.           help you with any problems you may be having.
  689.  
  690.                You may contact me at my full time place of employment from 9:00
  691.           a.m. until 5:00 p.m Monday through Friday at (419) 334-5204.  IF YOU
  692.           CALL MY OFFICE, PLEASE ASK FOR ME BY NAME!  I AM THE ONLY ONE WHERE I
  693.           WORK WHO CAN PROVIDE ANY INFORMATION ON MY SHAREWARE!  After hours and
  694.           on weekends, you may call (419) 262-8322.  This is a private mobile
  695.           phone, and if it is not answered, will forward to a voice mailbox
  696.           which I check as often as possible.  If you leave a message on here, I
  697.           will usually get back to you the same day.  You may also send me
  698.           Compuserve Mail at USER ID: 72200,1312, GEnie Mail at MAHOTZ, or
  699.           Internet mail at "72200.1312@compuserve.com".  I normally try to check
  700.           these places daily.
  701.  
  702.                Many of the features in PRINDIR have been added at the request of
  703.           other users.  If you have ideas, suggestions, questions, comments, or
  704.           criticism, please contact me so a solution can be worked out.
  705.  
  706.                If you have trouble and can't get things going, be sure you have
  707.           some basic info before you contact me, such as what type of system you
  708.           are using, what type of memory buffer you are using, what types of
  709.           programs you have resident, what programs you are using, and when the
  710.           problems occur.  With this information I can generally determine what
  711.           the problem is, and find a way to get PRINDIR to work for you!
  712.  
  713.           KNOWN CONFLICTS:
  714.  
  715.                PRINDIR cannot redirect programs which bypass the BIOS and access
  716.           hardware directly.  PRINDIR intercepts all devices at the BIOS level,
  717.           but there is no easy way to intercept direct hardware writes.
  718.  
  719.           PRINDIR has been tested under MS-DOS Versions 3.30, 4.01, AND 5.00
  720.  
  721.  
  722.  
  723.  
  724.  
  725.                                         Page - 11
  726.  
  727.  
  728.  
  729.  
  730.  
  731.                 JMAC PRINDIR Version 8.00 Users Guide and Reference Manual
  732.  
  733.  
  734.                      PRINDIR Version 8.00 Official Registration Form
  735.  
  736.           Please mail this form to:
  737.  
  738.           J.M. Allen Creations
  739.           115 Lynn Street
  740.           Fremont, Ohio  43420
  741.  
  742.           Please make any check or money orders payable to J.M. Allen Creations.
  743.  
  744.           First time registration is $20.00.  Registered users of any previous
  745.           version of PRINDIR may upgrade to PRINDIR version 8.00 for only $5.00.
  746.  
  747.           Name _________________________________________________________________
  748.  
  749.           Title ________________________________________________________________
  750.  
  751.           Company Name _________________________________________________________
  752.  
  753.           Address ______________________________________________________________
  754.  
  755.           City _____________________     State ___________     Zip _____________
  756.  
  757.           Daytime Phone _______________________     Fax ________________________
  758.  
  759.           Compuserve Mail _____________________     GEnie Mail _________________
  760.  
  761.  
  762.           _____ New Registrations at $20.00 Each      = $__________
  763.  
  764.           _____ Upgrade Registrations at $5.00 Each   = $__________
  765.  
  766.                                          Total Cost   = $__________
  767.  
  768.  
  769.           [ ] I have enclosed a check or money order for the total
  770.  
  771.           [ ] Charge the credit card below for the total (signature required)
  772.  
  773.           [ ] I registered by phone with a credit card (signature required)
  774.  
  775.  
  776.           CREDIT CARD NUMBER (13 or 16 digits)                     EXPIRES
  777.           VISA/MASTERCARD ONLY!
  778.  
  779.           __ __ __ __ - __ __ __ __ - __ __ __ __ - __ __ __ __    __ __ / __ __
  780.  
  781.  
  782.           AUTHORIZED SIGNATURE _______________________________________
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.                                         Page - 12
  792.  
  793.